home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / a_utils / ffccflow / ffccflow.lha / ffccc+flow / ffccc / LMERGE.f < prev    next >
Text File  |  1992-07-31  |  1KB  |  47 lines

  1.       SUBROUTINE LMERGE(SLIST,NACC,FLACC,IS,N1,N2)  
  2. *-----------------------------------------------------------------------
  3. *   
  4. *--- merges two successive, alphabetically sorted lists 
  5. *    in SLIST in place, updates NACC
  6. *   
  7. *--- input  
  8. *    SLIST     list containing all names
  9. *    NACC      array to be re-arranged with sort
  10. *    FLACC     if true, NACC is actually updated
  11. *    IS        start-1 of first list in IS  
  12. *    N1        length of first list 
  13. *    N2        length of second list
  14. *   
  15. *-----------------------------------------------------------------------
  16.       include 'PARAM.h' 
  17.       include 'FLWORK.h' 
  18.       CHARACTER *(MXNMCH)  SLIST(*) 
  19.       DIMENSION NACC(*) 
  20.       LOGICAL FLACC 
  21.       KADD=0
  22.       K2=N1 
  23.       DO 20 I=1,N1  
  24.          II=I   
  25.    10    IF (K2.EQ.N1+N2) GOTO 40   
  26.          IF (SLIST(IS+I).GT.SLIST(IS+K2+1))  THEN   
  27.             K2=K2+1 
  28.             IWS(K2)=I+KADD  
  29.             KADD=KADD+1 
  30.             GOTO 10 
  31.          ELSE   
  32.             IWS(I)=I+KADD   
  33.          ENDIF  
  34.    20 CONTINUE  
  35.       DO 30 I=K2+1,N1+N2
  36.    30 IWS(I)=I  
  37.       GOTO 60   
  38.    40 CONTINUE  
  39.       DO 50 I=II,N1 
  40.    50 IWS(I)=I+KADD 
  41.    60 CONTINUE  
  42. *   
  43. *--- put in place   
  44. *   
  45.       CALL SHUFFL(SLIST,NACC,FLACC,IS,N1+N2)
  46.       END   
  47.